package com.easystudy.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import com.easystudy.media.error.ReturnValue;
import com.easystudy.media.model.DeviceInfo;
import com.easystudy.media.model.StrategyInfo;
import com.easystudy.media.service.MediaService;

/**
 * @文件名称: MediaController.java
 * @功能描述: 媒体接入对接接口
 * @版权信息: www.easystudy.com
 * @技术交流: 961179337(QQ群)
 * @编写作者: lixx2048@163.com
 * @联系方式: 941415509(QQ)
 * @开发日期: 2021年6月8日
 * @历史版本: V1.0 
 * @备注信息:
 */
@RestController
@RequestMapping("/media")
public class MediaController {
	@Autowired
	private MediaService meidaService;
	
	/**
	 * @功能描述: 向媒体服务添加接入设备
	 * @版权信息: www.easystudy.com
	 * @技术交流: 961179337(QQ群)
	 * @编写作者: lixx2048@163.com
	 * @开发日期: 2023年11月15日
	 * @备注信息: 
	 */
	@PostMapping("/addDevice")
	public ReturnValue<String> addDevice(@RequestBody DeviceInfo device) throws Exception {
		return meidaService.addDevice(device);
	}
	
	/**
	 * @功能描述: 设置设备录像策略
	 * @版权信息: www.easystudy.com
	 * @技术交流: 961179337(QQ群)
	 * @编写作者: lixx2048@163.com
	 * @开发日期: 2023年11月15日
	 * @备注信息: 
	 */
	@PutMapping("/setStrategy")
	public ReturnValue<String> setStrategy(@RequestBody StrategyInfo strategy) throws Exception {
		return meidaService.setStrategy(strategy);
	}
	
	/**
	 * @功能描述: 删除媒体接入设备
	 * @版权信息: www.easystudy.com
	 * @技术交流: 961179337(QQ群)
	 * @编写作者: lixx2048@163.com
	 * @开发日期: 2023年11月15日
	 * @备注信息: 
	 */
	@DeleteMapping("/delDevice")
	public ReturnValue<String> delDevice(@RequestParam("deviceId")String deviceId) throws Exception {
		return meidaService.delDevice(deviceId);
	}
	
	/**
	 * @功能描述: 请求播放设备视频
	 * @版权信息: www.easystudy.com
	 * @技术交流: 961179337(QQ群)
	 * @编写作者: lixx2048@163.com
	 * @开发日期: 2023年11月15日
	 * @备注信息: 
	 */
	@GetMapping("/play")
	public ReturnValue<String> play(@RequestParam("deviceId")String deviceId,
									@RequestParam("channel")Integer channel,
									@RequestParam("stream")Integer stream) throws Exception {
		return meidaService.play(deviceId, channel, stream);
	}
	
	/**
	 * @功能描述: 停止播放设备视频
	 * @版权信息: www.easystudy.com
	 * @技术交流: 961179337(QQ群)
	 * @编写作者: lixx2048@163.com
	 * @开发日期: 2023年11月15日
	 * @备注信息: 
	 */
	@GetMapping("/stop")
	public ReturnValue<String> stop(@RequestParam("deviceId")String deviceId,
									@RequestParam("channel")Integer channel,
									@RequestParam("stream")Integer stream) throws Exception {
		return meidaService.stop(deviceId, channel, stream);
	}
}
